home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / DISKS / Issue58 / ADOX / ADOXSecurityU1.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2000-05-02  |  3.1 KB  |  122 lines

  1. unit ADOXSecurityU1;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  7.   StdCtrls, Db, ADODB;
  8.  
  9. type
  10.   TForm1 = class(TForm)
  11.     btnListGroupsAndUsers: TButton;
  12.     btnCreateGroup: TButton;
  13.     ADOConnection1: TADOConnection;
  14.     Memo1: TMemo;
  15.     btnCreateUser: TButton;
  16.     btnGetPerms: TButton;
  17.     btnSetPerms: TButton;
  18.     btnAddUserToGroup: TButton;
  19.     procedure btnListGroupsAndUsersClick(Sender: TObject);
  20.     procedure btnCreateGroupClick(Sender: TObject);
  21.     procedure btnCreateUserClick(Sender: TObject);
  22.     procedure btnGetPermsClick(Sender: TObject);
  23.     procedure btnSetPermsClick(Sender: TObject);
  24.     procedure btnAddUserToGroupClick(Sender: TObject);
  25.   private
  26.     { Private declarations }
  27.   public
  28.     { Public declarations }
  29.   end;
  30.  
  31. var
  32.   Form1: TForm1;
  33.  
  34. implementation
  35.  
  36. {$R *.DFM}
  37.  
  38. uses
  39.   ADOX_TLB, ComObj;
  40.  
  41. procedure TForm1.btnListGroupsAndUsersClick(Sender: TObject);
  42. var
  43.   Cat     : Catalog;
  44.   intGroup: integer;
  45.   intUser : integer;
  46. begin
  47.   Cat:=CreateCOMObject(Class_Catalog) as Catalog;
  48.  
  49.   for intGroup:=0 to Cat.Groups.Count - 1 do
  50.     Memo1.Lines.Add(Cat.Groups[intGroup].Name);
  51.  
  52.   for intUser:=0 to Cat.Users.Count - 1 do
  53.     Memo1.Lines.Add(Cat.Users[intUser].Name);
  54. end;
  55.  
  56. procedure TForm1.btnCreateGroupClick(Sender: TObject);
  57. var
  58.   Cat: Catalog;
  59.   grp: Group;
  60. begin
  61.   Cat:=CreateCOMObject(Class_Catalog) as Catalog;
  62.   Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
  63.  
  64.   grp:=CreateCOMObject(Class_Group) as Group;
  65.   grp.Name:='Technical';
  66.   Cat.Groups.Append(grp);
  67. end;
  68.  
  69. procedure TForm1.btnCreateUserClick(Sender: TObject);
  70. var
  71.   Cat: Catalog;
  72.   usr: User;
  73. begin
  74.   Cat:=CreateCOMObject(Class_Catalog) as Catalog;
  75.   Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
  76.  
  77.   usr:=CreateCOMObject(Class_User) as User;
  78.   usr.Name:='Guy Smith-Ferrier';
  79.   Cat.Users.Append(usr, '');
  80. end;
  81.  
  82. procedure TForm1.btnAddUserToGroupClick(Sender: TObject);
  83. var
  84.   Cat: Catalog;
  85. begin
  86.   Cat:=CreateCOMObject(Class_Catalog) as Catalog;
  87.   Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
  88.  
  89.   Cat.Groups['Technical'].Users.Append('Guy Smith-Ferrier', EmptyParam);
  90. end;
  91.  
  92. procedure TForm1.btnGetPermsClick(Sender: TObject);
  93. var
  94.   Cat: Catalog;
  95.   grp: Group;
  96.   Perms: LongInt;
  97. begin
  98.   Cat:=CreateCOMObject(Class_Catalog) as Catalog;
  99.   Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
  100.  
  101.   grp:=Cat.Groups['Technical'];
  102.   Perms:=grp.GetPermissions('Customers', adPermObjTable, EmptyParam);
  103.   if (Perms and adRightDelete) = adRightDelete then
  104.     ShowMessage('Technical group can delete rows in Customers');
  105. end;
  106.  
  107. procedure TForm1.btnSetPermsClick(Sender: TObject);
  108. var
  109.   Cat: Catalog;
  110.   grp: Group;
  111. begin
  112.   Cat:=CreateCOMObject(Class_Catalog) as Catalog;
  113.   Cat.Set_ActiveConnection(ADOConnection1.ConnectionObject);
  114.  
  115.   grp:=Cat.Groups['Technical'];
  116.   grp.SetPermissions('Customers', adPermObjTable, adAccessSet, adRightDelete, EmptyParam, EmptyParam);
  117.  
  118.   grp.SetPermissions('Customers', adPermObjTable, adAccessGrant, adRightDrop, EmptyParam, EmptyParam);
  119. end;
  120.  
  121. end.
  122.